<?php
/**
 * 
 * Contolador de proceso ...
 * @author natanael
 *
 */
class etapastrx extends Controller 
{
	public function __construct()
	{
		parent::Controller();
		$this->load->library('chcalendario','email');
		$this->load->model(array('mcompania','mestatus','metapas','mjurisdiccion','mresponsable',
		                         'mservicios','provincias','usuarios','mprocesos','mcigestion','mcihistorico',
								 'tiposeguimientomodel'));
	}
	
	public function estatus()
	{
		$this->load->view('main', array('content_page' => 'status','menutop'=>0));
	}
	
	//Se utiliza para enviar un mail, en todas las etapas
	private function _enviarMailNotificacion($compania, $procesoAnterior)
	{
		$companias = $this->mcompania->LoadCompaniaById($compania);
		$etapa = $this->metapas->LoadEtapaById($companias->getIdUltimaEtapa());
		$etapaAnterior = $this->metapas->LoadEtapaById($procesoAnterior->getIdEtapa());
		$usuario = $this->usuarios->LoadUsuarioById($this->session->userdata('LOGGED_USR_ID'));
		$proceso = $this->mprocesos->loadLastProcesosPorEtapa($companias->getIdCompania(), $etapa->GetIdEtapa());
		$proceso_obj = $this->mprocesos->loadProcesoById(intval($proceso));
		$seguimiento = $this->tiposeguimientomodel->loadDataById($proceso_obj->getIdTipoSeguimiento());
		$responsable = $this->mresponsable->LoadEstatusById($proceso_obj->getIdResponsable());
		
		$config['protocol'] = 'sendmail';
		$config['mailpath'] = '/usr/sbin/sendmail';
		$config['charset'] = 'iso-8859-1';
		$config['wordwrap'] = TRUE;
		$config['mailtype'] = 'html'; 
		
		$this->email->initialize($config);	
		
		$this->email->from('info@company24h.com', 'Company24h');
		$this->email->to('info@company24h.com');

		$this->email->subject('Compania enviada a '.$etapa->GetNombre());
		
		$body = '<div style = "width: 675px; height:560px;">
				 <font style="color:#375a90; font-weight:700; font-size:20px;">Notificaci&oacute;n cambio de etapa:
				 </font><br/>
				 <p style="font-size:15px; color:#212121;">
				 La compa&ntilde;ia <b>'.$companias->getNombreCompania().'</b> a pasado de '.$etapaAnterior->GetNombre().'<br/>
				 a '.$etapa->GetNombre().'.<br/><br/>
				 Para ver todos los seguimientos de esta compa&ntilde;ia, <a href="http://www.code.company24h.com/index.php/indicadoresseguimientoci/companyDetails/'.$companias->getIdCompania().'">click aqui.</>
				 </p>
				 <font style="color:#375a90; font-size:20px;">Detalles:</font><br/>
				 <p style="font-size:13px;">
						 <b>Fecha: </b>'.date('d/m/Y H:i:s').'<br/>
						  <b>Etapa Actual: </b>'.$etapa->GetNombre().'<br/>
						  <b>Descripcion: </b>'.$proceso_obj->getDescripcion().'<br/>
						  <b>Tipo Seguimiento: </b>'.$seguimiento->getTipoSeguimiento().'<br/>
						  <b>Prox. Responsable: </b>'.$responsable->getNombre().'<br/>
						 <b>Usuario: </b>'.$usuario->getNombreUsuario().'<br/>
			     </p>
			     <font style="color:#375a90; font-size:20px;">---------------------------------------------------------</font><br/>
			        </div>';
		$this->email->message($body);

		$this->email->send();
	}
	
	public function index()
	{
		redirect('main_tran');
	}
	
	public function save()
	{
		   //manda al historico de gestion de entrega
		   
		   $companiaG = $this->mcigestion->LoadGestionById($this->session->userdata('COMPANIA'));
		   
		   if ($companiaG != false) {
		   	
		   	    if ($this->input->post('etapa') != $companiaG->getIdEstapa()) {
		   	    
		   	          $dataGH = array(
		   	                       'idCompania'           => $companiaG->getIdCompania(),
		   	                       'idEstapa'             => $companiaG->getIdEstapa(),
		   	                       'nota'                 => $companiaG->getNota(),
		   	                       'fechaSystem'          => $companiaG->getFechaSystem(),
		   	                       'fechaContacto'        => $companiaG->getFechaContacto(),
		   	                       'fechaRegistro'        => $companiaG->getFechaRegistro(),
		   	                       'idEstatus'            => $companiaG->getIdEstatus()
		   	                     );
		   	                     
		   	            if ($this->mcihistorico->crear($dataGH) == true) {
		   	            	
		   	            	$this->mcigestion->delete($companiaG->getIdCompania());
		   	            	
		   	            }              
		   	    }
		   }
		   
		    $docFactura = @$this->input->post('docFactura');
			$docRecivo = @$this->input->post('docRecibo');
			
		
			if ($this->input->post('IdProceso')){
				$proc = $this->mprocesos->loadProcesoById($this->input->post('IdProceso'));
				
				if ($proc != false){
					
					$estatus = $this->input->post('estatus');
		
					
					if (strlen($docFactura) > 1) {
						
						$array = array(
						              'IdResponsable'  => $this->input->post('responsable'),
						              'docFactura'     => $docFactura,
						              'docRecibo'      => $docRecivo,
						              'idStatu'        => $estatus);
						
					}else{
					     $array = array('IdResponsable'     => $this->input->post('responsable'),
					                    'idStatu'           => $estatus);
					}
					
					 $this->mcompania->UpDateDos($proc->getIdCompania(),$array);
				    
				    $dataProceso = array('IdEtapa'             => $this->input->post('etapa'),
				                         'IdEstatus'           => $this->input->post('estatus'),
				                         'DescripcionProceso'  => $this->input->post('descripcion'),
				                         'Comentario'          => $this->input->post('comentario'));   
					
					if($this->mprocesos->updateProceso($this->input->post('IdProceso'), $dataProceso) != false){
						    $mensagge = "El proceso de a actualisado";		
					}else{
					        $mensagge = "Error al actualisar el proceso";	
					}		
					
				}
			}else{
			      
				  if (empty($_POST['descripcion']) or empty($_POST['comentario'])){
				       return false;
			      }
			
			       $estapaan = $this->session->flashdata('estapa');
			       if (strlen($docFactura) > 1) {
						    
			       	        $arranata = array('idStatu'     => $_POST['estatus'],
						                      'docFactura'  => $docFactura,
						                      'docRecibo'   => $docRecivo);
						
					}else{
					     $arranata = array('idStatu' => $_POST['estatus']);
					}
			    
			         $this->mcompania->UpDateDos($this->session->userdata('COMPANIA'),$arranata);
			    
			         $proseso = $this->mprocesos->loadLastProceso($this->session->userdata('COMPANIA'));
			         $proseso = $this->mprocesos->loadProcesoById($proseso);
			    
			         $ultimatransaccion=$this->chcalendario->calcularDias($proseso->getFechaSys());
			         $this->mprocesos->updateProceso($proseso->getIdProceso(), array('dias'=>$ultimatransaccion));
			    
		     	     $fechausr_bad = explode('/',$this->input->post('date'));
			         $fechausr = $fechausr_bad[2]."/".$fechausr_bad[0]."/".$fechausr_bad[1];
			         
			         $this->mcompania->UpDateDos($this->session->userdata('COMPANIA'),array('IdResponsable'=>$this->input->post('responsable')));
			
			    	 $this->mprocesos->upDateProceso($proseso->getIdProceso(), array('Fechas' => date('Y/m/d H:i:s')));
			    	          $etapa_obj = $this->metapas->LoadEtapaById($this->input->post('etapa'));  
			    	          $dataProceso = array('IdEtapa'              => $this->input->post('etapa'),
			    	                               'IdEstatus'            => $this->input->post('estatus'),
			    	          					   'IdTipoSeguimiento'	  => $this->input->post('tipoSeguimiento'),
			    	                               'DescripcionProceso'   => $this->input->post('descripcion'),
			    	                               'FechaProceso'         => $fechausr.' '.date('H:i:s'),
			    	                               'FechaSysProceso'      => date('Y/m/d'),
			    	          					   'TimeSysProceso'       => date('H:i:s'),
			    	                               'IdResponsable'        => $this->input->post('responsable'),
			    	                               'IdUsuario'            => $this->session->userdata('LOGGED_USR_ID'),
			    	                               'IdCompania'           => $this->session->userdata('COMPANIA'),
			    	                               'Comentario'           => $this->session->userdata('comentario'),
			    	                               'Fechas'               => "0000-00-00 00:00:00",
			    	          					   'clasificacion_proceso'=> $etapa_obj->getClasificacionProceso());
								
			                  if ($this->mprocesos->procesoAdd($dataProceso) == TRUE){
			                  		$etapa_obj = $this->metapas->LoadEtapaById($dataProceso['IdEtapa']);
			                  		$this->mcompania->updateLastStage($dataProceso['IdEtapa'], $etapa_obj->getClasificacionProceso(), $dataProceso['IdCompania']);
			                  		
							//enviar un mail cuando la etapa sea igual a 16..
			                  		$compania = $this->session->userdata('COMPANIA');
			                        if($this->input->post('etapa') > 0 /*== 16 || $this->input->post('etapa') == 1 || $this->input->post('etapa') == 25 || $this->input->post('etapa') == 17*/){
			                        	
			                        	$this->_enviarMailNotificacion($compania, $proseso);
			                       
			    	                }
			    	               
			    	                
			                         $mensagge = 'La transaccion fue agregada satisfactoriamente';
			                  }else{
			                         $mensagge = 'Error creando el nuevo Proceso';
			                  }
                                 
			    }
			  
			
			  $this->session->set_flashdata('status_message', $mensagge);
			  redirect('main_tran');
			
	}
	
          public function saveInterno()
	{
		   //manda al historico de gestion de entrega
		   
		   $companiaG = $this->mcigestion->LoadGestionById($this->session->userdata('COMPANIA'));
		   
		   if ($companiaG != false) {
		   	
		   	    if ($this->input->post('etapa') != $companiaG->getIdEstapa()) {
		   	    
		   	          $dataGH = array(
		   	                       'idCompania'           => $companiaG->getIdCompania(),
		   	                       'idEstapa'             => $companiaG->getIdEstapa(),
		   	                       'nota'                 => $companiaG->getNota(),
		   	                       'fechaSystem'          => $companiaG->getFechaSystem(),
		   	                       'fechaContacto'        => $companiaG->getFechaContacto(),
		   	                       'fechaRegistro'        => $companiaG->getFechaRegistro(),
		   	                       'idEstatus'            => $companiaG->getIdEstatus()
		   	                     );
		   	                     
		   	            if ($this->mcihistorico->crear($dataGH) == true) {
		   	            	
		   	            	$this->mcigestion->delete($companiaG->getIdCompania());
		   	            	
		   	            }              
		   	    }
		   }
		   
		    $docFactura = @$this->input->post('docFactura');
			$docRecivo = @$this->input->post('docRecibo');
			
		
			if ($this->input->post('IdProceso')){
				$proc = $this->mprocesos->loadProcesoById($this->input->post('IdProceso'));
				
				if ($proc != false){
					
					$estatus = $this->input->post('estatus');
		
					
					if (strlen($docFactura) > 1) {
						
						$array = array(
						              'IdResponsable'  => $this->input->post('responsable'),
						              'docFactura'     => $docFactura,
						              'docRecibo'      => $docRecivo,
						              'idStatu'        => $estatus);
						
					}else{
					     $array = array('IdResponsable'     => $this->input->post('responsable'),
					                    'idStatu'           => $estatus);
					}
					
					 $this->mcompania->UpDateDos($proc->getIdCompania(),$array);
				    
				    $dataProceso = array('IdEtapa'             => $this->input->post('etapa'),
				                         'IdEstatus'           => $this->input->post('estatus'),
				                         'DescripcionProceso'  => $this->input->post('descripcion'),
				                         'Comentario'          => $this->input->post('comentario'));   
					
					if($this->mprocesos->updateProceso($this->input->post('IdProceso'), $dataProceso) != false){
						    $mensagge = "El proceso de a actualisado";		
					}else{
					        $mensagge = "Error al actualisar el proceso";	
					}		
					
				}
			}else{
			      
				  if (empty($_POST['descripcion']) or empty($_POST['comentario'])){
				       return false;
			      }
			
			       $estapaan = $this->session->flashdata('estapa');
			       if (strlen($docFactura) > 1) {
						    
			       	        $arranata = array('idStatu'     => $_POST['estatus'],
						                      'docFactura'  => $docFactura,
						                      'docRecibo'   => $docRecivo);
						
					}else{
					     $arranata = array('idStatu' => $_POST['estatus']);
					}
			    
			         $this->mcompania->UpDateDos($this->session->userdata('COMPANIA'),$arranata);
			    
			         $proseso = $this->mprocesos->loadLastProceso($this->session->userdata('COMPANIA'));
			         $proseso = $this->mprocesos->loadProcesoById($proseso);
			    
			         $ultimatransaccion=$this->chcalendario->calcularDias($proseso->getFechaSys());
			         $this->mprocesos->updateProceso($proseso->getIdProceso(), array('dias'=>$ultimatransaccion));
			    
		     	     $fechausr_bad = explode('/',$this->input->post('date'));
			         $fechausr = $fechausr_bad[2]."/".$fechausr_bad[0]."/".$fechausr_bad[1];
			         
			         $this->mcompania->UpDateDos($this->session->userdata('COMPANIA'),array('IdResponsable'=>$this->input->post('responsable')));
			
			    	 $this->mprocesos->upDateProceso($proseso->getIdProceso(), array('Fechas' => date('Y/m/d H:i:s')));
			    	          $etapa_obj = $this->metapas->LoadEtapaById($this->input->post('etapa'));  
			    	          $dataProceso = array('IdEtapa'              => $this->input->post('etapa'),
			    	                               'IdEstatus'            => $this->input->post('estatus'),
                                                                       'IdTipoSeguimiento'    => $this->input->post('tipoSeguimiento'),
			    	                               'DescripcionProceso'   => $this->input->post('descripcion'),
			    	                               'FechaProceso'         => $fechausr.' '.date('H:i:s'),
			    	                               'FechaSysProceso'      => date('Y/m/d'),
			    	          					   'TimeSysProceso'       => date('H:i:s'),
			    	                               'IdResponsable'         => $this->input->post('responsable'),
			    	                               'IdUsuario'             => $this->session->userdata('LOGGED_USR_ID'),
			    	                               'IdCompania'            => $this->session->userdata('COMPANIA'),
			    	                               'Comentario'            => $this->session->userdata('comentario'),
			    	                               'Fechas'                => "0000-00-00 00:00:00",
			    	          		 'clasificacion_proceso' => $etapa_obj->getClasificacionProceso(),
                                                                       'fechaContacto'         => $this->input->post('date-fecha'));
								
			                  if ($this->mprocesos->procesoAdd($dataProceso) == TRUE){
			                  		$etapa_obj = $this->metapas->LoadEtapaById($dataProceso['IdEtapa']);
			                  		$this->mcompania->updateLastStage($dataProceso['IdEtapa'], $etapa_obj->getClasificacionProceso(), $dataProceso['IdCompania']);
			                  		
							//enviar un mail cuando la etapa sea igual a 16..
			                  		$compania = $this->session->userdata('COMPANIA');
			                        if($this->input->post('etapa') > 0 /*== 16 || $this->input->post('etapa') == 1 || $this->input->post('etapa') == 25 || $this->input->post('etapa') == 17*/){
			                        	
			                        	$this->_enviarMailNotificacion($compania, $proseso);
			                       
			    	                }
			    	               
			    	                
			                         $mensagge = 'La transaccion fue agregada satisfactoriamente';
			                  }else{
			                         $mensagge = 'Error creando el nuevo Proceso';
			                  }
                                 
			    }
			  
			
			  $this->session->set_flashdata('status_message', $mensagge);
			  redirect('controlInternoControler');
			
	}
          
          
	function delete($id)
	{
     	
        $estapa = $this->mprocesos->loadProcesoById($id);
       
        if ($estapa->getIdEtapa() == 4) {
        	$this->session->set_flashdata('status_message','Esta etapa es inicial no se puede eliminar');
        	redirect('main_tran');
        }
        else 
        {
        	$this->mprocesos->Delete($id);
        	$this->session->set_flashdata('status_message','Se ha eliminado la etapa');
        	redirect('main_tran');
        }
         
	}
	
	public function edit($idproceso)
	{
		$proceso_obj = $this->mprocesos->loadProcesoById($idproceso);
		$etapa_obj = $this->metapas->LoadEtapaById($proceso_obj->getIdEtapa());
		$etapa = $etapa_obj->GetNombre();
		$estatus_obj = $this->mestatus->LoadEstatusById($proceso_obj->getIdEstatus());
		$estatu = $estatus_obj->GetNombre();
		$compania_obj = $this->mcompania->LoadCompaniaById($proceso_obj->getIdCompania());
		$servicio_obj = $this->mservicios->LoadServicioById($compania_obj->getIdServicio());
		$jurisdiccion_obj = $this->mjurisdiccion->LoadjurisdiccionById($compania_obj->getIdJurisdiccion());
		
		if ($proceso_last = $this->mprocesos->loadLastProceso($compania_obj->getIdCompania())){
		     
			  $proceso_last = intval($proceso_last);
		      $procesoLast_obj = $this->mprocesos->loadProcesoById($proceso_last);
		      $etapaLast_obj = $this->metapas->LoadEtapaById($procesoLast_obj->getIdEtapa());
		      $etapa_tiempo = $etapaLast_obj->GetTiempoEstimado();
		      $ultimatransaccion = $this->chcalendario->calcularDias($procesoLast_obj->getFechaProceso());
		      $estatusLast_obj = $this->mestatus->LoadEstatusById($procesoLast_obj->getIdEstatus());
		 
		      $usuario_tran = $proceso_obj->getIdUsuario();
		      $usuario_obj = $this->usuarios->LoadUsuarioById($usuario_tran);
		 
		}
		
			
		$this->load->view('main',array('content_page'        => 'proceso_edit',
						               'jurisdicciones'      => $this->mjurisdiccion->LoadJurisdiccion(),
						               'responsables'        => $this->mresponsable->LoadResponsable(),
						               'servicios'           => $this->mservicios->Loadservicios(),
						               'provincias'          => $this->provincias->LoadProvincias(),
						               'usuarios'            => $this->usuarios->LoadUsuarios(),
						               'etapas'              => $this->metapas->LoadEtapas(),
						               'estatus'             => $this->mestatus->LoadEstatus(),
						               'compania'            => $compania_obj,
						               'servicio'            => $servicio_obj->getNombreServicio(),
						               'jurisdiccion'        => $jurisdiccion_obj->getNombreJurisdiccion(),
						               'ultima'              => $ultimatransaccion,
						               'proceso'             => $procesoLast_obj,
						               'etapaactual'         => $etapaLast_obj->GetNombre(),
						               'estatusactual'       => $estatusLast_obj->getNombre(),
						               'usuario_tran'        => $usuario_obj->getNombreUsuario(),
						               'menutop'             => 0,
						               'proceso2'            => $proceso_obj,
		                               'etapa'               => $etapa,
		                               'estatu'              => $estatu));
	}
	
	function status()
	{
		$this->load->view('main', array('content_page' => 'status','menutop' => 0));
	}
	
	public function add()
	{
		$compania = $this->mcompania->LoadCompaniaById($this->session->userdata('COMPANIA'));
		$servicio = $this->mservicios->LoadServicioById($compania->getIdServicio());
		$jurisdiccion = $this->mjurisdiccion->LoadjurisdiccionById($compania->getIdJurisdiccion());
		$proceso = $this->mprocesos->loadLastProceso($compania->getIdCompania());
	    $proceso_obj = $this->mprocesos->loadProcesoById(intval($proceso));
		$etapa_obj = $this->metapas->LoadEtapaById($proceso_obj->getIdEtapa());
	    $estatus_obj = $this->mestatus->LoadEstatusById($proceso_obj->getIdEstatus());
		$usuario_obj = $this->usuarios->LoadUsuarioById($proceso_obj->getIdUsuario());
		     
	    $allProceso = $this->mprocesos->getDataIdCompany(array("IdEtapa"     => $proceso_obj->getIdEtapa(),
		                                                       "IdCompania"  => $this->session->userdata('COMPANIA')));
		$diasAllProceso = 0;
		
		foreach ($allProceso as $allP){
		     if ($allP->getFechaS() == '0000-00-00 00:00:00'){
		          $dias = $this->chcalendario->calcularDias($allP->getFechaSys());
		     }else{
		         $dias = $this->chcalendario->calcularDias($allP->getFechaSys(), $allP->getFechaS());
		     }
          	$diasAllProceso += 	$dias;	
		}
		
		$this->load->view('main',array('content_page'        => 'etapastrx_add',
		                               'menutop'             => 0,
						               'jurisdicciones'      => $this->mjurisdiccion->LoadJurisdiccion(),
						               'responsables'        => $this->mresponsable->LoadResponsable(),
						               'servicios'           => $this->mservicios->Loadservicios(),
						               'provincias'          => $this->provincias->LoadProvincias(),
						               'usuarios'            => $this->usuarios->LoadUsuarios(),
						               'etapas'              => $this->metapas->LoadEtapas(),
						               'estatus'             => $this->mestatus->LoadEstatus(),
						               'compania'            => $compania,
						               'servicio'            => $servicio->getNombreServicio(),
						               'jurisdiccion'        => $jurisdiccion->getNombreJurisdiccion(),
						               'ultima'              => $this->chcalendario->calcularDias($proceso_obj->getFechaProceso()),
						               'proceso'             => $proceso_obj,
						               'etapaactual'         => $etapa_obj,
						               'estatusactual'       => $estatus_obj,
						               'usuario_tran'        => $usuario_obj->getNombreUsuario(),
		                               'diasAllProceso'      => $diasAllProceso,
									   'tipoSeguimientos'	 => $this->tiposeguimientomodel->loadData()));
	}
          
          public function addInterno()
	{
		$compania = $this->mcompania->LoadCompaniaById($this->session->userdata('COMPANIA'));
		$servicio = $this->mservicios->LoadServicioById($compania->getIdServicio());
		$jurisdiccion = $this->mjurisdiccion->LoadjurisdiccionById($compania->getIdJurisdiccion());
		$proceso = $this->mprocesos->loadLastProceso($compania->getIdCompania());
	    $proceso_obj = $this->mprocesos->loadProcesoById(intval($proceso));
		$etapa_obj = $this->metapas->LoadEtapaById($proceso_obj->getIdEtapa());
	    $estatus_obj = $this->mestatus->LoadEstatusById($proceso_obj->getIdEstatus());
		$usuario_obj = $this->usuarios->LoadUsuarioById($proceso_obj->getIdUsuario());
		     
	    $allProceso = $this->mprocesos->getDataIdCompany(array("IdEtapa"     => $proceso_obj->getIdEtapa(),
		                                                       "IdCompania"  => $this->session->userdata('COMPANIA')));
		$diasAllProceso = 0;
		
		foreach ($allProceso as $allP){
		     if ($allP->getFechaS() == '0000-00-00 00:00:00'){
		          $dias = $this->chcalendario->calcularDias($allP->getFechaSys());
		     }else{
		         $dias = $this->chcalendario->calcularDias($allP->getFechaSys(), $allP->getFechaS());
		     }
          	$diasAllProceso += 	$dias;	
		}
		
		$this->load->view('main',array('content_page'        => 'etapastrx_addInterno',
		                               'menutop'             => 0,
						               'jurisdicciones'      => $this->mjurisdiccion->LoadJurisdiccion(),
						               'responsables'        => $this->mresponsable->LoadResponsable(),
						               'servicios'           => $this->mservicios->Loadservicios(),
						               'provincias'          => $this->provincias->LoadProvincias(),
						               'usuarios'            => $this->usuarios->LoadUsuarios(),
						               'etapas'              => $this->metapas->LoadEtapas(),
						               'estatus'             => $this->mestatus->LoadEstatus(),
						               'compania'            => $compania,
						               'servicio'            => $servicio->getNombreServicio(),
						               'jurisdiccion'        => $jurisdiccion->getNombreJurisdiccion(),
						               'ultima'              => $this->chcalendario->calcularDias($proceso_obj->getFechaProceso()),
						               'proceso'             => $proceso_obj,
						               'etapaactual'         => $etapa_obj,
						               'estatusactual'       => $estatus_obj,
						               'usuario_tran'        => $usuario_obj->getNombreUsuario(),
		                               'diasAllProceso'      => $diasAllProceso,
									   'tipoSeguimientos'	 => $this->tiposeguimientomodel->loadData()));
	}
          
	
	public function det($idproceso)
	{
		$proceso2 = $this->mprocesos->loadProcesoById($idproceso);
		$etapa_obj = $this->metapas->LoadEtapaById($proceso2->getIdEtapa());
		
		$estatus2 = $this->mestatus->LoadEstatusById($proceso2->getIdEstatus());
	
		$compania = $this->mcompania->LoadCompaniaById($this->session->userdata('COMPANIA'));
		$servicio = $this->mservicios->LoadServicioById($compania->getIdServicio());
				
		$jurisdiccion = $this->mjurisdiccion->LoadjurisdiccionById($compania->getIdJurisdiccion());
				
		if ($proceso = $this->mprocesos->loadLastProceso($compania->getIdCompania())){
	                            
			    $proceso_obj = $this->mprocesos->loadProcesoById(intval($proceso));
		        $etapa_obj = $this->metapas->LoadEtapaById($proceso_obj->getIdEtapa());
                $ultimatransaccion = $this->chcalendario->calcularDias($proceso_obj->getFechaProceso());
		        $estatus_obj = $this->mestatus->LoadEstatusById($proceso_obj->getIdEstatus());
		        $etapa_obj_nombre = $etapa_obj->GetNombre();
                $usuario_obj = $this->usuarios->LoadUsuarioById($proceso_obj->getIdUsuario());
		}
			
		$this->load->view('main',array('content_page'       => 'etapastrx_det',
						               'jurisdicciones'     => $this->mjurisdiccion->LoadJurisdiccion(),
						               'responsables'       => $this->mresponsable->LoadResponsable(),
						               'servicios'          => $this->mservicios->Loadservicios(),
						               'provincias'         => $this->provincias->LoadProvincias(),
						               'usuarios'           => $this->usuarios->LoadUsuarios(),
						               'etapas'             => $this->metapas->LoadEtapas(),
						               'estatus'            => $this->mestatus->LoadEstatus(),
						               'compania'           => $compania,
						               'servicio'           => $servicio->getNombreServicio(),
						               'jurisdiccion'       => $jurisdiccion->getNombreJurisdiccion(),
						               'ultima'             => $ultimatransaccion,
						               'proceso'            => $proceso_obj,
						               'etapaactual'        => $etapa_obj_nombre,
						               'estatusactual'      => $estatus_obj->getNombre(),
						               'usuario_tran'       => $usuario_obj->getNombreUsuario(),
						               'menutop'            => 0,
						               'proceso2'           => $proceso2,
		                               'etapa'              => $proceso_obj->getIdEtapa()
		                               ));
	}
	
	public function detalles()
	{
		
		$compania = $this->mcompania->LoadCompaniaById($this->session->userdata('COMPANIA'));

		$servicio = $this->mservicios->LoadServicioById($compania->getIdServicio());
		
		$jurisdiccion = $this->mjurisdiccion->LoadjurisdiccionById($compania->getIdJurisdiccion());
		
		if ($proceso = $this->mprocesos->loadLastProceso($compania->getIdCompania())){
		
		       $proceso_obj = $this->mprocesos->loadProcesoById(intval($proceso));
               $etapa_obj = $this->metapas->LoadEtapaById($proceso_obj->getIdEtapa());
		       $ultimatransaccion = $this->chcalendario->calcularDias($proceso_obj->getFechaProceso());
		       $estatus_obj = $this->mestatus->LoadEstatusById($proceso_obj->getIdEstatus());
		       $usuario_obj = $this->usuarios->LoadUsuarioById($proceso_obj->getIdUsuario());
		}
		
		$allProceso = $this->mprocesos->getDataIdCompany(array("IdEtapa"     => $proceso_obj->getIdEtapa(),
		                                                       "IdCompania"  => $this->session->userdata('COMPANIA')));
	
		$diasAllProceso = 0;
		
		foreach ($allProceso as $allP){
		     if ($allP->getFechaS() == '0000-00-00 00:00:00'){
		          $dias = $this->chcalendario->calcularDias($allP->getFechaSys());
		     }else{
		         $dias = $this->chcalendario->calcularDias($allP->getFechaSys(), $allP->getFechaS());
		     }
          	$diasAllProceso += 	$dias;	
		}
		
		$this->load->view('main',array('content_page'       => 'etapastrx_dt',
		                               'menutop'            => 0,
						               'jurisdicciones'     => $this->mjurisdiccion->LoadJurisdiccion(),
						               'responsables'       => $this->mresponsable->LoadResponsable(),
						               'servicios'          => $this->mservicios->Loadservicios(),
						               'provincias'         => $this->provincias->LoadProvincias(),
						               'usuarios'           => $this->usuarios->LoadUsuarios(),
						               'etapas'             => $this->metapas->LoadEtapas(),
						               'estatus'            => $this->mestatus->LoadEstatus(),
						               'compania'           => $compania,
						               'servicio'           => $servicio->getNombreServicio(),
						               'jurisdiccion'       => $jurisdiccion->getNombreJurisdiccion(),
						               'ultima'             => $ultimatransaccion,
		                               'diasAllProceso'     => $diasAllProceso,    
						               'proceso'            => $proceso_obj,
						               'etapaactual'        => $etapa_obj,
						               'estatusactual'      => $estatus_obj,
						               'usuario_tran'       => $usuario_obj->getNombreUsuario()));
		
	}
	
	public function save2()
	{
			
			$fechausr_bad=explode('/',$this->input->post('date'));
			$fechausr=$fechausr_bad[2]."/".$fechausr_bad[0]."/".$fechausr_bad[1];
			
			
			$arr =  $this->session->userdata('idcom');	
			
			 if (count($arr) > 0) {
			 	
			 	  for ($i= 0;$i < count($arr);$i++)
			 	  {    
			 	        $companiaG = $this->mcigestion->LoadGestionById($arr[$i]);
		                if ($companiaG != false) {
		   	
		   	                   if ($this->input->post('etapa') != $companiaG->getIdEstapa()) {
		   	    
		   	                   $dataGH = array(
		   	                             'idCompania'           => $companiaG->getIdCompania(),
		   	                             'idEstapa'             => $companiaG->getIdEstapa(),
		   	                             'nota'                 => $companiaG->getNota(),
		   	                             'fechaSystem'          => $companiaG->getFechaSystem(),
		   	                             'fechaContacto'        => $companiaG->getFechaContacto(),
		   	                             'fechaRegistro'        => $companiaG->getFechaRegistro(),
		   	                             'idEstatus'            => $companiaG->getIdEstatus());
		   	                     
		   	                  if ($this->mcihistorico->crear($dataGH) == true) 
		   	            	          $this->mcigestion->delete($companiaG->getIdCompania());
		   	        	                 
		   	                  }
		                 }
		                 
		                 
			 	  	  
			 	  	    $proc = $this->mprocesos->loadLastProceso($arr[$i]);
			 	  	    $proc2 = $this->mprocesos->loadProcesoById($proc);
			 	  	    $ultimatransaccion = $this->chcalendario->calcularDias($proc2->getFechaSys());
			 	  	    
			 	  	    
			 	  	    
			            $this->mprocesos->upDateProceso($proc,array('dias' => $ultimatransaccion, 'Fechas' => date('Y/m/d H:i:s')));
			 	  	 	$etapa_obj = $this->metapas->LoadEtapaById($this->input->post('etapa'));
			 	    	$data = array(
			 	  	                'IdEtapa'             => $this->input->post('etapa'),
					                'IdEstatus'           => $this->input->post('estatus'),
			 	    				'IdTipoSeguimiento'	  => $this->input->post('tipoSeguimiento'),
					                'DescripcionProceso'  => $this->input->post('descripcion'),
					                'FechaProceso'        => $fechausr.' '.date('G:i:s'),
					                'Fechas'              => '0000/00/00 00:00:00',
					                'FechaSysProceso'     => date('Y/m/d G:i:s').' 00:00:00',
					                'IdResponsable'       => $this->input->post('responsable'),
					                'IdUsuario'           => $this->input->post('usuario'),
					                'IdCompania'          => $arr[$i],
					                'Comentario'          => $this->input->post('comentario'),
			 	    				'clasificacion_proceso'	=> $etapa_obj->getClasificacionProceso());
					            
			 	  	$array = array('IdResponsable' => $this->input->post('responsable'));
			 	  	
					$this->mcompania->UpDateDos($arr[$i],$array);
			 	  	$this->mprocesos->createProcesoLote($data);
			 	  	
			        $this->mcompania->updateLastStage($data['IdEtapa'], $etapa_obj->getClasificacionProceso(), $data['IdCompania']);
			 	  	 	  	
			 	  }
			 	
			 }
				
				                                
				$this->session->set_flashdata('status_message','La transaccion fue agregada satisfactoriamente');
				$this->session->set_flashdata('status_url', '/main_tran');
				redirect('etapastrx/status');
				
			
			
	}
	
	function lotefrom()
	{
		
		$var = explode(',',$this->input->post('delete_rows'));
		$this->load->view('main',array('content_page'=> 'stapalote',
		                               'menutop'=>1,
		                               'etapas'=>$this->metapas->LoadEtapas(),
		                               'estatus'=>$this->mestatus->LoadEstatus(),
		                               'responsables'=>$this->mresponsables->Loadresponsables(),
		                               'var'=>$var));
	}	
}